package com.gdpu.project.util.excel;

import java.io.File;
import java.util.ArrayList;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
 * 
 * @author 梁飞龙 这个类是生成excel的类
 */
public class WriteExcel {

	/**
	 * 
	 * @param titles
	 *            导出excel页头的信息
	 * @param fileName
	 *            导出excel的文件名
	 * @param sheetName
	 *            excel的sheet的名字
	 * @param list
	 *            excel名字
	 * @throws Exception
	 */
	public static void write(String[] titles, String fileName,
			String sheetName, ArrayList<String[]> list) throws Exception {
		WritableWorkbook wwb = null;
		Label label = null;
		int size = titles.length;
		try {
			// 创建可写入的工作簿对象
			wwb = Workbook.createWorkbook(new File(fileName));

			if (wwb != null) {
				// 在工作簿里创建可写入的工作表，第一个参数为工作表名，第二个参数为该工作表的所在位置
				WritableSheet ws = wwb.createSheet(sheetName, 0);
				if (ws != null) {
					// 设置页头信息
					for (int i = 0; i < size; i++) {
						label = new Label(i, 0, titles[i]);
						ws.addCell(label);
					}

					// 遍历输出内容
					// 行
					for (int i = 1; i < list.size() + 1; i++) {
						String colValues[] = list.get(i - 1);
						// 列
						int rowSize = colValues.length;
						for (int j = 0; j < rowSize; j++) {
							label = new Label(j, i, colValues[j]);
							// 将被写入数据的单元格添加到工作表
							ws.addCell(label);
						}
					}
					wwb.write();
				}
				System.out.println("路径为：" + fileName + "的工作簿写入数据成功！");
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			wwb.close();
		}
	}
}